/**
 *	特殊密码锁
 *	枚举法
 *
 */
#include<iostream>
#include<cstring>
using namespace std;
const int N = 30;

char ori[N], change[N], result[N];
bool switchs[N];

void sw(char a[], int i, int size = N)
{
	if (i == 0) {// 开头
		a[i + 1] ^= 1;
	} else if (i == size - 1) {// 结尾
		a[i - 1] ^= 1;
	} else {// 前后位
		a[i + 1] ^= 1;
		a[i - 1] ^= 1;
	}
	a[i] ^= 1;// 当前位置
}
int main()
{
	cin >> ori >> result;
	int n = strlen(ori);
	for (int i = 0; i < 2; i++) {
//		for (int j = 0; j < n; j++) {
//			change[j] = ori[j];
//			switchs[j] = 0;
//		}
//		change[n] = new ori[n];

		// 使用函数初始化
		memcpy(change,ori,sizeof ori);
		memset(switchs,0,sizeof switchs);
		
		if (i == 0) {// 头开关关闭
			for (int j = 0; j < n - 1; j++) {
				if (change[j] != result[j]) {
					sw(change, j + 1);
					switchs[j + 1] = 1;
				}
			}
			if (change[n - 1] == result[n - 1]) {
				break;
			}
		} else {// 头开关打开
			sw(change, 0);
			switchs[0] = 1;
			
			for (int j = 0; j < n - 1; j++) {
				if (change[j] != result[j]) {
					sw(change, j + 1);
					switchs[j + 1] = 1;
				}
			}
		}
	}
	if (change[n - 1] == result [n - 1]) {
		int sum = 0;
		for (int i = 0; i < n; i++) {
			sum += switchs[i];
		}
		cout << sum ;
	} else
		cout << "impossible" << endl;
	return 0;
}
